νλ μΉ κ°λ°μμ λ μκ³ λΉ λ₯Έ μλ°μ€ν¬λ¦½νΈ λ²λ€μ λ§λ€κΈ° μν λ‘€μ μ νΈλ¦¬ μμ΄νΉ κΈ°λ₯κ³Ό λ°λ μ½λ μ κ±° μ λ΅μ νꡬνλ μ’ ν© κ°μ΄λμ λλ€.
λ‘€μ νΈλ¦¬ μμ΄νΉ: λ°λ μ½λ μ κ±° λ§μ€ν°νκΈ°
νλ μΉ κ°λ°μ μΈκ³μμ ν¨μ¨μ μΈ μλ°μ€ν¬λ¦½νΈ λ²λ€λ§μ λ§€μ° μ€μν©λλ€. λ²λ€ ν¬κΈ°κ° ν¬λ©΄ λ‘λ© μκ°μ΄ κΈΈμ΄μ§κ³ μ¬μ©μ κ²½νμ΄ μ νλ©λλ€. μΈκΈ° μλ μλ°μ€ν¬λ¦½νΈ λͺ¨λ λ²λ€λ¬μΈ λ‘€μ μ κ°λ ₯ν νΈλ¦¬ μμ΄νΉ κΈ°λ₯ λλΆμ μ΄ μμ μ νμν©λλ€. μ΄ κΈμμλ λ‘€μ μ νΈλ¦¬ μμ΄νΉμ κΉμ΄ νκ³ λ€μ΄, μ μΈκ³ μ¬μ©μλ₯Ό μν ν¨κ³Όμ μΈ λ°λ μ½λ μ κ±° λ° μ΅μ νλ μλ°μ€ν¬λ¦½νΈ λ²λ€ μ λ΅μ νꡬν©λλ€.
νΈλ¦¬ μμ΄νΉμ΄λ 무μμΈκ°?
νΈλ¦¬ μμ΄νΉμ λ°λ μ½λ μ κ±°(dead code elimination)λΌκ³ λ μλ €μ Έ μμΌλ©°, μλ°μ€ν¬λ¦½νΈ λ²λ€μμ μ¬μ©λμ§ μλ μ½λλ₯Ό μ κ±°νλ κ³Όμ μ λλ€. μ ν리μΌμ΄μ μ λ무λ‘, κ° μ½λ λΌμΈμ μμΌλ‘ μμν΄ λ³΄μΈμ. νΈλ¦¬ μμ΄νΉμ κ²°μ½ μ€νλμ§ μλ μ½λ, μ¦ 'μ£½μ μ'μ μλ³νκ³ 'νΈμ΄λ΄μ΄' λ μκ³ κ°λ²Όμ°λ©° ν¨μ¨μ μΈ μ΅μ’ κ²°κ³Όλ¬Όμ λ§λλλ€. μ΄λ μ΄κΈ° νμ΄μ§ λ‘λ© μκ°μ λ¨μΆνκ³ μ±λ₯μ κ°μ νλ©°, νΉν λλ¦° λ€νΈμν¬ μ°κ²°μ΄λ λμνμ΄ μ νλ μ§μμ μ₯μΉλ₯Ό μ¬μ©νλ μ¬μ©μμκ² μ€μν μ λ°μ μΈ μ¬μ©μ κ²½νμ ν₯μμν΅λλ€.
λ°νμ λΆμμ μμ‘΄νλ μΌλΆ λ€λ₯Έ λ²λ€λ¬μ λ¬λ¦¬, λ‘€μ μ μ μ λΆμμ νμ©νμ¬ μ€μ λ‘ μ΄λ€ μ½λκ° μ¬μ©λλμ§ κ²°μ ν©λλ€. μ¦, μ½λλ₯Ό μ€ννμ§ μκ³ λΉλ μμ μ μ½λλ₯Ό λΆμν©λλ€. μ΄ μ κ·Ό λ°©μμ μΌλ°μ μΌλ‘ λ μ ννκ³ ν¨μ¨μ μ λλ€.
νΈλ¦¬ μμ΄νΉμ μ μ€μνκ°?
- λ²λ€ ν¬κΈ° κ°μ: κ°μ₯ ν° μ΄μ μ λ²λ€ ν¬κΈ°λ₯Ό μ€μ¬ λ€μ΄λ‘λ μκ°μ λ¨μΆνλ κ²μ λλ€.
- μ±λ₯ ν₯μ: λ²λ€μ΄ μμμ§λ©΄ λΈλΌμ°μ κ° νμ±νκ³ μ€νν΄μΌ ν μ½λκ° μ€μ΄λ€μ΄ μ ν리μΌμ΄μ μ λ°μμ±μ΄ ν₯μλ©λλ€.
- λ λμ μ¬μ©μ κ²½ν: λΉ λ₯Έ λ‘λ© μκ°μ μ¬μ©μμκ² λ λΆλλ½κ³ μ¦κ±°μ΄ κ²½νμΌλ‘ μ§μ μ΄μ΄μ§λλ€.
- μλ² λΉμ© μ κ°: λ²λ€μ΄ μμμ§λ©΄ λ μ μ λμνμ νμλ‘ νλ―λ‘, νΉν λ€μν μ§λ¦¬μ μ§μμμ νΈλν½μ΄ λ§μ μ ν리μΌμ΄μ μ κ²½μ° μλ² λΉμ©μ μ κ°ν μ μμ΅λλ€.
- SEO κ°ν: μΉμ¬μ΄νΈ μλλ κ²μ μμ§ μκ³ λ¦¬μ¦μ μμ κ²°μ μμμ λλ€. νΈλ¦¬ μμ΄νΉμ ν΅ν΄ μ΅μ νλ λ²λ€μ κ°μ μ μΌλ‘ κ²μ μμ§ μ΅μ ν(SEO)λ₯Ό κ°μ ν μ μμ΅λλ€.
λ‘€μ μ νΈλ¦¬ μμ΄νΉ: μλ μ리
λ‘€μ
μ νΈλ¦¬ μμ΄νΉμ ES λͺ¨λ(ESM) ꡬ문μ ν¬κ² μμ‘΄ν©λλ€. ESMμ λͺ
μμ μΈ import
λ° export
λ¬Έμ λ‘€μ
μ΄ μ½λ λ΄μ μμ‘΄μ±μ μ΄ν΄νλ λ° νμν μ 보λ₯Ό μ 곡ν©λλ€. μ΄λ Node.jsμμ μ¬μ©νλ CommonJSλ AMDμ κ°μ μ΄μ λͺ¨λ νμκ³Όμ κ²°μ μ μΈ μ°¨μ΄μ μΈλ°, μ΄λ€ νμμ λ λμ μ΄κ³ μ μ μΌλ‘ λΆμνκΈ° μ΄λ ΅μ΅λλ€. κ³Όμ μ λ¨κ³λ³λ‘ μ΄ν΄λ³΄κ² μ΅λλ€:
- λͺ¨λ ν΄μ: λ‘€μ μ λ¨Όμ μ ν리μΌμ΄μ μ λͺ¨λ λͺ¨λμ ν΄μνμ¬ μμ‘΄μ± κ·Έλνλ₯Ό μΆμ ν©λλ€.
- μ μ λΆμ: κ·Έ λ€μ κ° λͺ¨λμ μ½λλ₯Ό μ μ μΌλ‘ λΆμνμ¬ μ΄λ€ exportκ° μ¬μ©λκ³ μ΄λ€ κ²μ΄ μ¬μ©λμ§ μλμ§ μλ³ν©λλ€.
- λ°λ μ½λ μ κ±°: λ§μ§λ§μΌλ‘ λ‘€μ μ μ΅μ’ λ²λ€μμ μ¬μ©λμ§ μλ exportλ₯Ό μ κ±°ν©λλ€.
κ°λ¨ν μμλ λ€μκ³Ό κ°μ΅λλ€:
// utils.js
export function add(a, b) {
return a + b;
}
export function subtract(a, b) {
return a - b;
}
// main.js
import { add } from './utils.js';
console.log(add(2, 3));
μ΄ κ²½μ°, utils.js
νμΌμ subtract
ν¨μλ main.js
μμ μ ν μ¬μ©λμ§ μμ΅λλ€. λ‘€μ
μ νΈλ¦¬ μμ΄νΉμ μ΄λ₯Ό μλ³νκ³ μ΅μ’
λ²λ€μμ subtract
ν¨μλ₯Ό μ μΈνμ¬ λ μκ³ ν¨μ¨μ μΈ κ²°κ³Όλ¬Όμ λ§λλλ€.
λ‘€μ μΌλ‘ ν¨κ³Όμ μΈ νΈλ¦¬ μμ΄νΉμ μν μ λ΅
λ‘€μ μ κ°λ ₯νμ§λ§, ν¨κ³Όμ μΈ νΈλ¦¬ μμ΄νΉμ μν΄μλ νΉμ λͺ¨λ² μ¬λ‘λ₯Ό λ°λ₯΄κ³ μ μ¬μ μΈ ν¨μ μ μ΄ν΄ν΄μΌ ν©λλ€. λ€μμ λͺ κ°μ§ μ€μν μ λ΅μ λλ€:
1. ES λͺ¨λ μ¬μ©νκΈ°
μμ μΈκΈνλ―μ΄, λ‘€μ
μ νΈλ¦¬ μμ΄νΉμ ES λͺ¨λμ μμ‘΄ν©λλ€. νλ‘μ νΈκ° λͺ¨λμ μ μνκ³ μ¬μ©νλ λ° import
μ export
ꡬ문μ μ¬μ©νλλ‘ νμΈμ. CommonJSλ AMD νμμ λ‘€μ
μ μ μ λΆμ λ₯λ ₯μ λ°©ν΄ν μ μμΌλ―λ‘ νΌν΄μΌ ν©λλ€.
μ€λλ μ½λλ² μ΄μ€λ₯Ό λ§μ΄κ·Έλ μ΄μ
νλ κ²½μ°, λͺ¨λμ μ μ§μ μΌλ‘ ES λͺ¨λλ‘ λ³ννλ κ²μ κ³ λ €ν΄ λ³΄μΈμ. μ€λ¨μ μ΅μννκΈ° μν΄ μ μ§μ μΌλ‘ μνν μ μμ΅λλ€. jscodeshift
μ κ°μ λꡬλ λ³ν κ³Όμ μ μΌλΆλ₯Ό μλνν μ μμ΅λλ€.
2. μ¬μ΄λ μ΄ννΈ νΌνκΈ°
μ¬μ΄λ μ΄ννΈλ λͺ¨λ λ²μ λ°μ 무μΈκ°λ₯Ό μμ νλ λͺ¨λ λ΄μ μμ μ λλ€. μλ₯Ό λ€μ΄ μ μ λ³μ μμ , API νΈμΆ, DOM μ§μ μ‘°μ λ±μ΄ μμ΅λλ€. μ¬μ΄λ μ΄ννΈλ λ‘€μ μ΄ λͺ¨λμ΄ μ λ§λ‘ μ¬μ©λμ§ μλμ§ νλ¨ν μ μκ² λ§λ€μ΄ μμ νκ² μ½λλ₯Ό μ κ±°νλ κ²μ λ°©ν΄ν μ μμ΅λλ€.
μλ₯Ό λ€μ΄, λ€μ μμ λ₯Ό μ΄ν΄λ³΄κ² μ΅λλ€:
// my-module.js
let counter = 0;
export function increment() {
counter++;
console.log(counter);
}
// main.js
// incrementλ₯Ό μ§μ importνμ§ μμ§λ§, κ·Έ μ¬μ΄λ μ΄ννΈκ° μ€μν©λλ€.
increment
κ° μ§μ importλμ§ μλλΌλ, my-module.js
λ₯Ό λ‘λνλ νμ μμ²΄κ° μ μ counter
λ₯Ό μμ νλ μ¬μ΄λ μ΄ννΈλ₯Ό μλν κ²μΌ μ μμ΅λλ€. λ‘€μ
μ my-module.js
λ₯Ό μμ ν μ κ±°νλ κ²μ μ£Όμ ν μ μμ΅λλ€. μ΄λ₯Ό μννλ €λ©΄ μ¬μ΄λ μ΄ννΈλ₯Ό 리ν©ν λ§νκ±°λ λͺ
μμ μΌλ‘ μ μΈνλ κ²μ κ³ λ €νμΈμ. λ‘€μ
μμλ rollup.config.js
μ sideEffects
μ΅μ
μ μ¬μ©νμ¬ μ¬μ΄λ μ΄ννΈκ° μλ λͺ¨λμ μ μΈν μ μμ΅λλ€.
// rollup.config.js
export default {
input: 'src/main.js',
output: {
file: 'dist/bundle.js',
format: 'es'
},
treeshake: true,
plugins: [],
sideEffects: ['src/my-module.js'] // μ¬μ΄λ μ΄ννΈλ₯Ό λͺ
μμ μΌλ‘ μ μΈ
};
μ¬μ΄λ μ΄ννΈκ° μλ νμΌμ λμ΄ν¨μΌλ‘μ¨, λ‘€μ μκ² ν΄λΉ νμΌλ€μ΄ μ§μ importλμ§ μλ κ²μ²λΌ 보μ΄λλΌλ μ κ±°μ λν΄ λ³΄μμ μΌλ‘ μ κ·ΌνλΌκ³ μλ €μ€ μ μμ΅λλ€.
3. μμ ν¨μ μ¬μ©νκΈ°
μμ ν¨μλ λμΌν μ λ ₯μ λν΄ νμ λμΌν μΆλ ₯μ λ°ννκ³ μ¬μ΄λ μ΄ννΈκ° μλ ν¨μμ λλ€. μμΈ‘ κ°λ₯νκ³ λ‘€μ μ΄ μ½κ² λΆμν μ μμ΅λλ€. νΈλ¦¬ μμ΄νΉ ν¨κ³Όλ₯Ό κ·Ήλννλ €λ©΄ κ°λ₯ν λλ§λ€ μμ ν¨μλ₯Ό μ νΈνμΈμ.
4. μμ‘΄μ± μ΅μννκΈ°
νλ‘μ νΈμ μμ‘΄μ±μ΄ λ§μμλ‘ λ‘€μ μ΄ λΆμν΄μΌ ν μ½λλ λ§μμ§λλ€. μμ‘΄μ±μ μ΅μνμΌλ‘ μ μ§νκ³ νΈλ¦¬ μμ΄νΉμ μ ν©ν λΌμ΄λΈλ¬λ¦¬λ₯Ό μ ννμΈμ. μΌλΆ λΌμ΄λΈλ¬λ¦¬λ νΈλ¦¬ μμ΄νΉμ μΌλμ λκ³ μ€κ³λμμ§λ§, κ·Έλ μ§ μμ κ²½μ°λ μμ΅λλ€.
μλ₯Ό λ€μ΄, μΈκΈ° μλ μ νΈλ¦¬ν° λΌμ΄λΈλ¬λ¦¬μΈ Lodashλ μ ν΅μ μΌλ‘ λ¨μΌ ꡬ쑰 λλ¬Έμ νΈλ¦¬ μμ΄νΉμ λ¬Έμ κ° μμμ΅λλ€. νμ§λ§ Lodashλ ν¨μ¬ λ νΈλ¦¬ μμ΄νΉμ΄ μ©μ΄ν ES λͺ¨λ λΉλ(lodash-es)λ₯Ό μ 곡ν©λλ€. νΈλ¦¬ μμ΄νΉμ κ°μ νλ €λ©΄ νμ€ lodash ν¨ν€μ§ λμ lodash-esλ₯Ό μ ννμΈμ.
5. μ½λ μ€ν리ν
μ½λ μ€ν리ν μ μ ν리μΌμ΄μ μ νμμ λ°λΌ λ‘λν μ μλ λ μκ³ λ 립μ μΈ λ²λ€λ‘ λλλ κ΄νμ λλ€. μ΄λ νμ¬ νμ΄μ§λ λ·°μ νμν μ½λλ§ λ‘λνμ¬ μ΄κΈ° λ‘λ© μκ°μ ν¬κ² κ°μ ν μ μμ΅λλ€.
λ‘€μ μ λμ importλ₯Ό ν΅ν΄ μ½λ μ€ν리ν μ μ§μν©λλ€. λμ importλ₯Ό μ¬μ©νλ©΄ λ°νμμ λͺ¨λμ λΉλκΈ°μ μΌλ‘ λ‘λν μ μμ΅λλ€. μ΄λ₯Ό ν΅ν΄ μ ν리μΌμ΄μ μ λ€λ₯Έ λΆλΆμ λν λ³λμ λ²λ€μ μμ±νκ³ νμν λλ§ λ‘λν μ μμ΅λλ€.
μμλ λ€μκ³Ό κ°μ΅λλ€:
// main.js
async function loadComponent() {
const { default: Component } = await import('./component.js');
// ... μ»΄ν¬λνΈλ₯Ό λ λλ§
}
μ΄ κ²½μ°, component.js
λ loadComponent
ν¨μκ° νΈμΆλ λλ§ λ³λμ λ²λ€λ‘ λ‘λλ©λλ€. μ΄λ μ¦μ νμνμ§ μμ μ»΄ν¬λνΈ μ½λλ₯Ό 미리 λ‘λνλ κ²μ λ°©μ§ν©λλ€.
6. λ‘€μ μ¬λ°λ₯΄κ² μ€μ νκΈ°
λ‘€μ
μ μ€μ νμΌ(rollup.config.js
)μ νΈλ¦¬ μμ΄νΉ κ³Όμ μμ μ€μν μν μ ν©λλ€. treeshake
μ΅μ
μ΄ νμ±νλμ΄ μκ³ μ¬λ°λ₯Έ μΆλ ₯ νμ(ESM)μ μ¬μ©νκ³ μλμ§ νμΈνμΈμ. κΈ°λ³Έ `treeshake` μ΅μ
μ `true`μ΄λ©°, μ΄λ μ μμ μΌλ‘ νΈλ¦¬ μμ΄νΉμ νμ±νν©λλ€. λ 볡μ‘ν μλ리μ€λ₯Ό μν΄ μ΄ λμμ λ―ΈμΈ μ‘°μ ν μ μμ§λ§, κΈ°λ³Έκ°μΌλ‘ μμνλ κ²μΌλ‘λ μΆ©λΆν κ²½μ°κ° λ§μ΅λλ€.
λν λμ νκ²½μ κ³ λ €νμΈμ. μ€λλ λΈλΌμ°μ λ₯Ό λμμΌλ‘ νλ κ²½μ°, μ½λλ₯Ό νΈλμ€νμΌνκΈ° μν΄ @rollup/plugin-babel
κ³Ό κ°μ νλ¬κ·ΈμΈμ μ¬μ©ν΄μΌ ν μ μμ΅λλ€. νμ§λ§ μ§λμΉκ² 곡격μ μΈ νΈλμ€νμΌλ§μ΄ λλλ‘ νΈλ¦¬ μμ΄νΉμ λ°©ν΄ν μ μλ€λ μ μ μΈμ§νμΈμ. νΈνμ±κ³Ό μ΅μ ν μ¬μ΄μ κ· νμ λ§μΆκΈ° μν΄ λ
Έλ ₯ν΄μΌ ν©λλ€.
7. λ¦°ν° λ° μ μ λΆμ λꡬ μ¬μ©νκΈ°
λ¦°ν°μ μ μ λΆμ λꡬλ μ¬μ©νμ§ μλ λ³μ, μ¬μ΄λ μ΄ννΈ, λΆμ μ ν λͺ¨λ μ¬μ© λ± ν¨κ³Όμ μΈ νΈλ¦¬ μμ΄νΉμ λ°©ν΄ν μ μλ μ μ¬μ λ¬Έμ λ₯Ό μλ³νλ λ° λμμ΄ λ μ μμ΅λλ€. ESLintλ TypeScriptμ κ°μ λꡬλ₯Ό μν¬νλ‘μ°μ ν΅ν©νμ¬ κ°λ° κ³Όμ μ΄κΈ°μ μ΄λ¬ν λ¬Έμ λ₯Ό λ°κ²¬νμΈμ.
μλ₯Ό λ€μ΄, ESLintλ ES λͺ¨λ μ¬μ©μ κ°μ νκ³ μ¬μ΄λ μ΄ννΈλ₯Ό μ§μνλλ‘ κ·μΉμ μ€μ ν μ μμ΅λλ€. TypeScriptμ μ격ν νμ κ²μ¬ λν μ¬μ©λμ§ μλ μ½λμ κ΄λ ¨λ μ μ¬μ λ¬Έμ λ₯Ό μλ³νλ λ° λμμ΄ λ μ μμ΅λλ€.
8. νλ‘νμΌλ§ λ° μΈ‘μ νκΈ°
νΈλ¦¬ μμ΄νΉ λ
Έλ ₯μ΄ μ±κ³Όλ₯Ό κ±°λκ³ μλμ§ νμΈνλ κ°μ₯ μ’μ λ°©λ²μ λ²λ€μ νλ‘νμΌλ§νκ³ ν¬κΈ°λ₯Ό μΈ‘μ νλ κ²μ
λλ€. rollup-plugin-visualizer
μ κ°μ λꡬλ₯Ό μ¬μ©νμ¬ λ²λ€μ λ΄μ©μ μκ°ννκ³ μΆκ° μ΅μ νκ° νμν μμμ μλ³νμΈμ. νΈλ¦¬ μμ΄νΉ κ°μ μ μν₯μ νκ°νκΈ° μν΄ λ€μν λΈλΌμ°μ μ λ€νΈμν¬ μ‘°κ±΄μμ μ€μ λ‘λ© μκ°μ μΈ‘μ νμΈμ.
νΌν΄μΌ ν μΌλ°μ μΈ ν¨μ
νΈλ¦¬ μμ΄νΉ μ리λ₯Ό μ μ΄ν΄νκ³ μλλΌλ, ν¨κ³Όμ μΈ λ°λ μ½λ μ κ±°λ₯Ό λ°©ν΄νλ μΌλ°μ μΈ ν¨μ μ λΉ μ§κΈ° μ½μ΅λλ€. λ€μμ μ£Όμν΄μΌ ν λͺ κ°μ§ ν¨μ μ λλ€:
- κ°λ³ κ²½λ‘λ₯Ό μ¬μ©ν λμ Import: λͺ¨λ κ²½λ‘κ° λ³μμ μν΄ κ²°μ λλ λμ import μ¬μ©μ νΌνμΈμ. λ‘€μ μ μ΄λ¬ν κ²½μ°λ₯Ό μ μ μΌλ‘ λΆμνκΈ° μ΄λ ΅μ΅λλ€.
- λΆνμν ν΄λ¦¬ν: λμ λΈλΌμ°μ μ κΌ νμν ν΄λ¦¬νλ§ ν¬ν¨νμΈμ. κ³Όλν ν΄λ¦¬νμ λ²λ€ ν¬κΈ°λ₯Ό μλΉν μ¦κ°μν¬ μ μμ΅λλ€.
@babel/preset-env
μ κ°μ λꡬλ νΉμ λΈλΌμ°μ λ²μ μ λμμΌλ‘ μ§μ νκ³ νμν ν΄λ¦¬νλ§ ν¬ν¨νλλ‘ λμμ€λλ€. - μ μ λ³μ λ³κ²½: μ μ λ³μλ κ°μ²΄λ₯Ό μ§μ μμ νλ κ²μ νΌνμΈμ. μ΄λ¬ν μ¬μ΄λ μ΄ννΈλ λ‘€μ μ΄ μ΄λ€ μ½λλ₯Ό μμ νκ² μ κ±°ν μ μλμ§ νλ¨νκΈ° μ΄λ ΅κ² λ§λλλ€.
- κ°μ μ μΈ Export: κ°μ μ μΈ export(λͺ¨λ μ¬-export)μ μ μνμΈμ. μ¬μ©λ μ¬-export λ©€λ²λ§ ν¬ν¨λλλ‘ ν΄μΌ ν©λλ€.
- νλ‘λμ
νκ²½μ λλ²κΉ
μ½λ: νλ‘λμ
λΉλ μ μ λλ²κΉ
μ½λ(
console.log
λ¬Έ, λλ²κ±° λ¬Έ)λ₯Ό μ κ±°νκ±°λ λΉνμ±ννλ κ²μ μμ§ λ§μΈμ. μ΄λ λ²λ€μ λΆνμν 무κ²λ₯Ό λν μ μμ΅λλ€.
μ€μ μ¬λ‘ λ° μΌμ΄μ€ μ€ν°λ
νΈλ¦¬ μμ΄νΉμ΄ λ€μν μ νμ μ ν리μΌμ΄μ μ μ΄λ»κ² μν₯μ λ―ΈμΉλμ§ λͺ κ°μ§ μ€μ μ¬λ‘λ₯Ό μ΄ν΄λ³΄κ² μ΅λλ€:
- 리μ‘νΈ μ»΄ν¬λνΈ λΌμ΄λΈλ¬λ¦¬: μμ κ°μ λ€λ₯Έ μ»΄ν¬λνΈλ₯Ό ν¬ν¨νλ 리μ‘νΈ μ»΄ν¬λνΈ λΌμ΄λΈλ¬λ¦¬λ₯Ό ꡬμΆνλ€κ³ μμν΄ λ³΄μΈμ. νΈλ¦¬ μμ΄νΉμ νμ©νλ©΄, μλΉμ μ ν리μΌμ΄μ μμ μ€μ λ‘ μ¬μ©λλ μ»΄ν¬λνΈλ§ λ²λ€μ ν¬ν¨λλλ‘ νμ¬ κ·Έ ν¬κΈ°λ₯Ό ν¬κ² μ€μΌ μ μμ΅λλ€.
- μ μμκ±°λ μΉμ¬μ΄νΈ: λ€μν μν νμ΄μ§μ κΈ°λ₯μ κ°μ§ μ μμκ±°λ μΉμ¬μ΄νΈλ μ½λ μ€ν리ν κ³Ό νΈλ¦¬ μμ΄νΉμ ν° μ΄μ μ μ»μ μ μμ΅λλ€. κ° μν νμ΄μ§λ μ체 λ²λ€μ κ°μ§ μ μμΌλ©°, μ¬μ©λμ§ μλ μ½λ(μ: λ€λ₯Έ μν μΉ΄ν κ³ λ¦¬μ κ΄λ ¨λ κΈ°λ₯)λ μ κ±°λμ΄ νμ΄μ§ λ‘λ© μκ°μ λ¨μΆν μ μμ΅λλ€.
- λ¨μΌ νμ΄μ§ μ ν리μΌμ΄μ (SPA): SPAλ μ’ μ’ ν° μ½λλ² μ΄μ€λ₯Ό κ°μ§λλ€. μ½λ μ€ν리ν κ³Ό νΈλ¦¬ μμ΄νΉμ μ ν리μΌμ΄μ μ λ μκ³ κ΄λ¦¬ κ°λ₯ν μ²ν¬λ‘ λΆν΄νμ¬ νμμ λ°λΌ λ‘λν¨μΌλ‘μ¨ μ΄κΈ° λ‘λ© κ²½νμ κ°μ νλ λ° λμμ΄ λ μ μμ΅λλ€.
λͺλͺ νμ¬λ€μ λ‘€μ κ³Ό νΈλ¦¬ μμ΄νΉμ μ¬μ©νμ¬ μΉ μ ν리μΌμ΄μ μ μ΅μ νν κ²½νμ 곡κ°μ μΌλ‘ 곡μ νμ΅λλ€. μλ₯Ό λ€μ΄, Airbnbλ Facebookκ³Ό κ°μ νμ¬λ€μ λ‘€μ μΌλ‘ μ ννκ³ νΈλ¦¬ μμ΄νΉ λͺ¨λ² μ¬λ‘λ₯Ό μ±νν¨μΌλ‘μ¨ μλΉν λ²λ€ ν¬κΈ° κ°μλ₯Ό λ³΄κ³ νμ΅λλ€.
κ³ κΈ νΈλ¦¬ μμ΄νΉ κΈ°μ
κΈ°λ³Έμ μΈ μ λ΅ μΈμλ, νΈλ¦¬ μμ΄νΉ λ Έλ ₯μ λμ± ν₯μμν¬ μ μλ λͺ κ°μ§ κ³ κΈ κΈ°μ μ΄ μμ΅λλ€:
1. μ‘°κ±΄λΆ Export
μ‘°κ±΄λΆ exportλ₯Ό μ¬μ©νλ©΄ νκ²½μ΄λ λΉλ λμμ λ°λΌ λ€λ₯Έ λͺ¨λμ λ ΈμΆν μ μμ΅λλ€. μλ₯Ό λ€μ΄, λλ²κΉ λꡬλ₯Ό ν¬ν¨νλ κ°λ°μ© λΉλμ μ΄λ₯Ό μ μΈνλ νλ‘λμ μ© λΉλλ₯Ό λ³λλ‘ μμ±ν μ μμ΅λλ€. μ΄λ νκ²½ λ³μλ λΉλ μ νλκ·Έλ₯Ό ν΅ν΄ λ¬μ±ν μ μμ΅λλ€.
2. μ¬μ©μ μ μ λ‘€μ νλ¬κ·ΈμΈ
νμ€ λ‘€μ μ€μ μΌλ‘ μΆ©μ‘±λμ§ μλ νΉμ νΈλ¦¬ μμ΄νΉ μꡬμ¬νμ΄ μλ κ²½μ°, μ¬μ©μ μ μ λ‘€μ νλ¬κ·ΈμΈμ λ§λ€ μ μμ΅λλ€. μλ₯Ό λ€μ΄, μ ν리μΌμ΄μ μν€ν μ²μ νΉμ ν μ½λλ₯Ό λΆμνκ³ μ κ±°ν΄μΌ ν μλ μμ΅λλ€.
3. λͺ¨λ νλλ μ΄μ
λͺ¨λ νλλ μ΄μ μ μΉν©κ³Ό κ°μ μΌλΆ λͺ¨λ λ²λ€λ¬μμ μ¬μ© κ°λ₯νλ©°(λ‘€μ λ λͺ¨λ νλλ μ΄μ κ³Ό ν¨κ» μλν μ μμ), λ°νμμ λ€λ₯Έ μ ν리μΌμ΄μ κ°μ μ½λλ₯Ό 곡μ ν μ μκ² ν΄μ€λλ€. μ΄λ μ€λ³΅μ μ€μ΄κ³ μ μ§λ³΄μμ±μ ν₯μμν¬ μ μμ§λ§, νΈλ¦¬ μμ΄νΉμ΄ κ³μ ν¨κ³Όμ μΌλ‘ μλνλλ‘ νλ €λ©΄ μ μ€ν κ³νκ³Ό μ‘°μ μ΄ νμν©λλ€.
κ²°λ‘
λ‘€μ μ νΈλ¦¬ μμ΄νΉμ μλ°μ€ν¬λ¦½νΈ λ²λ€μ μ΅μ ννκ³ μΉ μ ν리μΌμ΄μ μ μ±λ₯μ ν₯μμν€λ κ°λ ₯ν λꡬμ λλ€. μ΄ κΈμμ μ€λͺ ν νΈλ¦¬ μμ΄νΉμ μ리λ₯Ό μ΄ν΄νκ³ λͺ¨λ² μ¬λ‘λ₯Ό λ°λ₯΄λ©΄, λ²λ€ ν¬κΈ°λ₯Ό ν¬κ² μ€μ΄κ³ λ‘λ© μκ°μ κ°μ νλ©° μ μΈκ³ μ¬μ©μμκ² λ λμ μ¬μ©μ κ²½νμ μ 곡ν μ μμ΅λλ€. ES λͺ¨λμ μ¬μ©νκ³ , μ¬μ΄λ μ΄ννΈλ₯Ό νΌνκ³ , μμ‘΄μ±μ μ΅μννλ©°, μ½λ μ€ν리ν μ νμ©νμ¬ λ‘€μ μ λ°λ μ½λ μ κ±° κΈ°λ₯μ μ μ¬λ ₯μ μ΅λν λ°ννμΈμ. κ°μ₯ μ΅μ νλ μ½λλ₯Ό μ 곡νκ³ μλμ§ νμΈνκΈ° μν΄ λ²λ€λ§ νλ‘μΈμ€λ₯Ό μ§μμ μΌλ‘ νλ‘νμΌλ§νκ³ , μΈ‘μ νκ³ , κ°μ νμΈμ. ν¨μ¨μ μΈ μλ°μ€ν¬λ¦½νΈ λ²λ€λ§μ ν₯ν μ¬μ μ κ³μλλ κ³Όμ μ΄μ§λ§, λ λΉ λ₯΄κ³ , λΆλλ½κ³ , λ§€λ ₯μ μΈ μΉ κ²½νμ΄λΌλ 보μμ κ·Έ λ Έλ ₯μ κ°μΉκ° μΆ©λΆν©λλ€. μ½λκ° μ΄λ»κ² ꡬ쑰νλκ³ μ΅μ’ λ²λ€ ν¬κΈ°μ μ΄λ€ μν₯μ λ―ΈμΉ μ μλμ§ νμ μΌλμ λμΈμ; νΈλ¦¬ μμ΄νΉ κΈ°μ μ μν₯μ κ·ΉλννκΈ° μν΄ κ°λ° μ£ΌκΈ° μ΄κΈ°μ μ΄λ₯Ό κ³ λ €ν΄μΌ ν©λλ€.